/* Copyright 2018 JDCLOUD.COM

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

http:#www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.





Contact: 

NOTE: This class is auto generated by the jdcloud code generator program.
*/

 

#ifndef BaseantiModel_h
#define BaseantiModel_h

@interface IpCleanThresholdSpec :NSObject

/// 基础防护已防护公网 IP, 支持 ipv4 和 ipv6.
   /// - 使用 &lt;a href&#x3D;&quot;http://docs.jdcloud.com/anti-ddos-basic/api/describeelasticipresources&quot;&gt;describeElasticIpResources&lt;/a&gt; 接口查询基础防护已防护的私有网络弹性公网 IP
   /// - 使用 &lt;a href&#x3D;&quot;http://docs.jdcloud.com/anti-ddos-basic/api/describecpsipresources&quot;&gt;describeCpsIpResources&lt;/a&gt; 接口查询基础防护已防护的云物理服务器公网IP 和 弹性公网 IP
   /// 
@property (strong,nonatomic,nonnull)  NSString*  ip;

/// 触发清洗的流量速率, 单位 bps. 取值范围由 &lt;a href&#x3D;&quot;http://docs.jdcloud.com/anti-ddos-basic/api/describeipcleanthresholdrange&quot;&gt;describeIpCleanThresholdRange&lt;/a&gt; 接口查询可知
   /// 
@property (strong,nonatomic,nonnull)  NSNumber*  cleanThresholdBps;

/// 触发清洗的报文流量速率, 单位 pps. 取值范围由 &lt;a href&#x3D;&quot;http://docs.jdcloud.com/anti-ddos-basic/api/describeipcleanthresholdrange&quot;&gt;describeIpCleanThresholdRange&lt;/a&gt; 接口查询可知
   /// 
@property (strong,nonatomic,nonnull)  NSNumber*  cleanThresholdPps;


-(id) initWithIp:(NSString*) ip
    cleanThresholdBps:(NSNumber*)cleanThresholdBps
    cleanThresholdPps:(NSNumber*)cleanThresholdPps;
-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;                    
@end
@interface IpResourceProtectInfo :NSObject

/// 攻击开始时间
@property (strong,nonatomic,nonnull)  NSString*  startTime;

/// 攻击结束时间
@property (strong,nonatomic,nonnull)  NSString*  endTime;

/// 安全状态, 0: 安全, 1: 清洗, 2: 黑洞
@property (strong,nonatomic,nonnull)  NSNumber*  status;

/// 触发原因，0-&gt;未知 1-&gt;四层 2-&gt;七层 3-&gt;四和7层
@property (strong,nonatomic,nonnull)  NSNumber*  cause;


-(id) initWithStartTime:(NSString*) startTime
    endTime:(NSString*)endTime
    status:(NSNumber*)status
    cause:(NSNumber*)cause;
-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;                    
@end
@interface IpResource :NSObject

/// 公网 IP 所在区域编码
@property (strong,nonatomic,nonnull)  NSString*  region;

/// 公网 IP 类型或绑定资源类型:
   ///   0: 未知类型,
   ///   1: 弹性公网 IP(IP 为弹性公网 IP, 绑定资源类型未知),
   ///   10: 弹性公网 IP(IP 为弹性公网 IP, 但未绑定资源),
   ///   11: 云主机,
   ///   12: 负载均衡,
   ///   13: 原生容器实例,
   ///   14: 原生容器 Pod,
   ///   2: 云物理服务器,
   /// 
@property (strong,nonatomic,nonnull)  NSNumber*  resourceType;

/// 公网 IP 地址
@property (strong,nonatomic,nonnull)  NSString*  ip;

/// 带宽上限, 单位 Mbps
@property (strong,nonatomic,nonnull)  NSNumber*  bandwidth;

/// 每秒请求流量
@property (strong,nonatomic,nonnull)  NSNumber*  cleanThresholdBps;

/// 每秒报文请求数
@property (strong,nonatomic,nonnull)  NSNumber*  cleanThresholdPps;

/// 黑洞阈值
@property (strong,nonatomic,nonnull)  NSNumber*  blackHoleThreshold;

/// 绑定防护包 ID, 为空字符串时表示未绑定防护包
@property (strong,nonatomic,nonnull)  NSString*  instanceId;

/// 绑定防护包名称, 为空字符串时表示未绑定防护包
@property (strong,nonatomic,nonnull)  NSString*  instanceName;

/// 套餐类型, 1: 独享 IP, 2: 共享 IP, 为 0 时未绑定防护包
@property (strong,nonatomic,nonnull)  NSNumber*  instanceType;

/// 安全状态, 0: 安全, 1: 清洗, 2: 黑洞
@property (strong,nonatomic,nonnull)  NSNumber*  safeStatus;


-(id) initWithRegion:(NSString*) region
    resourceType:(NSNumber*)resourceType
    ip:(NSString*)ip
    bandwidth:(NSNumber*)bandwidth
    cleanThresholdBps:(NSNumber*)cleanThresholdBps
    cleanThresholdPps:(NSNumber*)cleanThresholdPps
    blackHoleThreshold:(NSNumber*)blackHoleThreshold
    instanceId:(NSString*)instanceId
    instanceName:(NSString*)instanceName
    instanceType:(NSNumber*)instanceType
    safeStatus:(NSNumber*)safeStatus;
-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;                    
@end
@interface AttackTypeCount :NSObject

/// 攻击类型
@property (strong,nonatomic,nonnull)  NSString*  type;

/// 攻击次数
@property (strong,nonatomic,nonnull)  NSNumber*  count;


-(id) initWithType:(NSString*) type
    count:(NSNumber*)count;
-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;                    
@end
@interface CleanThresholdSpec :NSObject

/// 触发清洗的流量速率, 单位 bps. 取值范围由 &lt;a href&#x3D;&quot;http://docs.jdcloud.com/anti-ddos-basic/api/describeipcleanthresholdrange&quot;&gt;describeIpCleanThresholdRange&lt;/a&gt; 接口查询可知
   /// 
@property (strong,nonatomic,nonnull)  NSNumber*  cleanThresholdBps;

/// 触发清洗的报文流量速率, 单位 bps. 取值范围由 &lt;a href&#x3D;&quot;http://docs.jdcloud.com/anti-ddos-basic/api/describeipcleanthresholdrange&quot;&gt;describeIpCleanThresholdRange&lt;/a&gt; 接口查询可知
   /// 
@property (strong,nonatomic,nonnull)  NSNumber*  cleanThresholdPps;


-(id) initWithCleanThresholdBps:(NSNumber*) cleanThresholdBps
    cleanThresholdPps:(NSNumber*)cleanThresholdPps;
-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;                    
@end
@interface AttackLog :NSObject

/// 公网 IP 地址
@property (strong,nonatomic,nonnull)  NSString*  ip;

/// 公网 IP 类型或绑定资源类型:
   ///   0: 未知类型,
   ///   1: 弹性公网 IP(IP 为弹性公网 IP, 绑定资源类型未知),
   ///   10: 弹性公网 IP(IP 为弹性公网 IP, 但未绑定资源),
   ///   11: 云主机,
   ///   12: 负载均衡,
   ///   13: 原生容器实例,
   ///   14: 原生容器 Pod,
   ///   2: 云物理服务器,
   /// 
@property (strong,nonatomic,nonnull)  NSNumber*  resourceType;

/// 攻击记录 ID
@property (strong,nonatomic,nonnull)  NSString*  attackLogId;

/// 攻击开始时间, UTC 时间, 格式: yyyy-MM-dd&#39;T&#39;HH:mm:ssZ
@property (strong,nonatomic,nonnull)  NSString*  startTime;

/// 攻击结束时间, UTC 时间, 格式: yyyy-MM-dd&#39;T&#39;HH:mm:ssZ
@property (strong,nonatomic,nonnull)  NSString*  endTime;

/// 触发原因:
   /// 0: 未知,
   /// 1: 四层,
   /// 2: 七层,
   /// 3: 四层和七层
   /// 
@property (strong,nonatomic,nonnull)  NSNumber*  cause;

/// 状态, 0: 清洗完成, 1: 清洗中, 2: 黑洞中
@property (strong,nonatomic,nonnull)  NSNumber*  status;

/// 是否黑洞
@property (strong,nonatomic,nonnull)  NSNumber*  blackHole;

/// 攻击流量峰值
@property (strong,nonatomic,nonnull)  NSNumber*  peak;

/// 攻击流量峰值单位
@property (strong,nonatomic,nonnull)  NSString*  unit;

/// 攻击类型
@property (strong,nonatomic,nonnull)  NSArray<NSString*>*  attackType;


-(id) initWithIp:(NSString*) ip
    resourceType:(NSNumber*)resourceType
    attackLogId:(NSString*)attackLogId
    startTime:(NSString*)startTime
    endTime:(NSString*)endTime
    cause:(NSNumber*)cause
    status:(NSNumber*)status
    blackHole:(NSNumber*)blackHole
    peak:(NSNumber*)peak
    unit:(NSString*)unit
    attackType:(NSArray<NSString*>*)attackType;
-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;                    
@end
@interface IpSafetyInfo :NSObject

/// 公网 IP 地址
@property (strong,nonatomic,nonnull)  NSString*  ip;

/// 安全状态, 0-&gt;安全, 1-&gt;清洗, 2-&gt;黑洞
@property (strong,nonatomic,nonnull)  NSNumber*  safetyStatus;

/// 地域编码
@property (strong,nonatomic,nonnull)  NSString*  region;

/// 黑洞阈值, 单位 bps
@property (strong,nonatomic,nonnull)  NSNumber*  blackHoleThreshold;

/// 触发清洗的流量速率, 单位 bps
@property (strong,nonatomic,nonnull)  NSNumber*  cleanThresholdBps;

/// 触发清洗的包速率, 单位 pps
@property (strong,nonatomic,nonnull)  NSNumber*  cleanThresholdPps;


-(id) initWithIp:(NSString*) ip
    safetyStatus:(NSNumber*)safetyStatus
    region:(NSString*)region
    blackHoleThreshold:(NSNumber*)blackHoleThreshold
    cleanThresholdBps:(NSNumber*)cleanThresholdBps
    cleanThresholdPps:(NSNumber*)cleanThresholdPps;
-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;                    
@end
@interface IpCleanThresholdRange :NSObject

/// 清洗流量可设置最大值
@property (strong,nonatomic,nonnull)  NSNumber*  ipCleanThresholdBpsMax;

/// 清洗流量可设置最小值
@property (strong,nonatomic,nonnull)  NSNumber*  ipCleanThresholdBpsMin;

/// 清洗报文流量可设置最大值
@property (strong,nonatomic,nonnull)  NSNumber*  ipCleanThresholdPpsMax;

/// 清洗报文流量可设置最小值
@property (strong,nonatomic,nonnull)  NSNumber*  ipCleanThresholdPpsMin;


-(id) initWithIpCleanThresholdBpsMax:(NSNumber*) ipCleanThresholdBpsMax
    ipCleanThresholdBpsMin:(NSNumber*)ipCleanThresholdBpsMin
    ipCleanThresholdPpsMax:(NSNumber*)ipCleanThresholdPpsMax
    ipCleanThresholdPpsMin:(NSNumber*)ipCleanThresholdPpsMin;
-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;                    
@end
@interface IpResourceInfo :NSObject

/// 公网 IP 地址
@property (strong,nonatomic,nonnull)  NSString*  ip;

/// 安全状态, 0: 安全, 1: 清洗, 2: 黑洞
@property (strong,nonatomic,nonnull)  NSNumber*  safeStatus;

/// 公网 IP 所属地域编码
@property (strong,nonatomic,nonnull)  NSString*  region;

/// 黑洞阈值，单位 bps
@property (strong,nonatomic,nonnull)  NSNumber*  blackHoleThreshold;

/// 触发清洗的流量速率，单位 bps
@property (strong,nonatomic,nonnull)  NSNumber*  cleanThresholdBps;

/// 触发清洗的包速率，单位 pps
@property (strong,nonatomic,nonnull)  NSNumber*  cleanThresholdPps;


-(id) initWithIp:(NSString*) ip
    safeStatus:(NSNumber*)safeStatus
    region:(NSString*)region
    blackHoleThreshold:(NSNumber*)blackHoleThreshold
    cleanThresholdBps:(NSNumber*)cleanThresholdBps
    cleanThresholdPps:(NSNumber*)cleanThresholdPps;
-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;                    
@end
@interface IpResourceFlow :NSObject

/// UTC 时间, 格式: yyyy-MM-dd&#39;T&#39;HH:mm:ssZ
@property (strong,nonatomic,nonnull)  NSArray<NSString*>*  time;

/// 防护后流量
@property (strong,nonatomic,nonnull)  NSArray<NSNumber*>*  postProtect;

/// 防护前流量
@property (strong,nonatomic,nonnull)  NSArray<NSNumber*>*  preProtect;

/// 流量单位
@property (strong,nonatomic,nonnull)  NSString*  unit;


-(id) initWithTime:(NSArray<NSString*>*) time
    postProtect:(NSArray<NSNumber*>*)postProtect
    preProtect:(NSArray<NSNumber*>*)preProtect
    unit:(NSString*)unit;
-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;                    
@end

#endif /* BaseantiModel_h */
